<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibQQt: zxing::pdf417::decoder::BitMatrixParser Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibQQt
   &#160;<span id="projectnumber">v3.1</span>
   </div>
   <div id="projectbrief">开源、跨平台Qt应用程序框架中间件</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>zxing</b></li><li class="navelem"><b>pdf417</b></li><li class="navelem"><b>decoder</b></li><li class="navelem"><a class="el" href="classzxing_1_1pdf417_1_1decoder_1_1_bit_matrix_parser.html">BitMatrixParser</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classzxing_1_1pdf417_1_1decoder_1_1_bit_matrix_parser-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">zxing::pdf417::decoder::BitMatrixParser Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for zxing::pdf417::decoder::BitMatrixParser:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classzxing_1_1pdf417_1_1decoder_1_1_bit_matrix_parser.png" usemap="#zxing::pdf417::decoder::BitMatrixParser_map" alt=""/>
  <map id="zxing::pdf417::decoder::BitMatrixParser_map" name="zxing::pdf417::decoder::BitMatrixParser_map">
<area href="classzxing_1_1_counted.html" alt="zxing::Counted" shape="rect" coords="0,0,232,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a76e1fe4bb8cd208a5a2786ce00957ef7"><td class="memItemLeft" align="right" valign="top"><a id="a76e1fe4bb8cd208a5a2786ce00957ef7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>BitMatrixParser</b> (<a class="el" href="classzxing_1_1_ref.html">Ref</a>&lt; <a class="el" href="classzxing_1_1_bit_matrix.html">BitMatrix</a> &gt; bitMatrix)</td></tr>
<tr class="separator:a76e1fe4bb8cd208a5a2786ce00957ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad19c07dafdc8e767f0005e7517c40222"><td class="memItemLeft" align="right" valign="top"><a id="ad19c07dafdc8e767f0005e7517c40222"></a>
<a class="el" href="classzxing_1_1_array_ref.html">ArrayRef</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>getErasures</b> () const</td></tr>
<tr class="separator:ad19c07dafdc8e767f0005e7517c40222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec6a86f32168563d04d305bb3fb647bf"><td class="memItemLeft" align="right" valign="top"><a id="aec6a86f32168563d04d305bb3fb647bf"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>getECLevel</b> () const</td></tr>
<tr class="separator:aec6a86f32168563d04d305bb3fb647bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9dc5d4d3c921db3679d65c8268923c"><td class="memItemLeft" align="right" valign="top"><a id="a2c9dc5d4d3c921db3679d65c8268923c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>getEraseCount</b> () const</td></tr>
<tr class="separator:a2c9dc5d4d3c921db3679d65c8268923c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a333c690ca4065e69b693202f2f0832c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzxing_1_1_array_ref.html">ArrayRef</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzxing_1_1pdf417_1_1decoder_1_1_bit_matrix_parser.html#a333c690ca4065e69b693202f2f0832c7">readCodewords</a> ()</td></tr>
<tr class="separator:a333c690ca4065e69b693202f2f0832c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classzxing_1_1_counted"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classzxing_1_1_counted')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classzxing_1_1_counted.html">zxing::Counted</a></td></tr>
<tr class="memitem:af047acf66444dfd684b3ef16b96c8abd inherit pub_methods_classzxing_1_1_counted"><td class="memItemLeft" align="right" valign="top"><a id="af047acf66444dfd684b3ef16b96c8abd"></a>
<a class="el" href="classzxing_1_1_counted.html">Counted</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>retain</b> ()</td></tr>
<tr class="separator:af047acf66444dfd684b3ef16b96c8abd inherit pub_methods_classzxing_1_1_counted"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34015014640d6d7b1bae4b116deaaa70 inherit pub_methods_classzxing_1_1_counted"><td class="memItemLeft" align="right" valign="top"><a id="a34015014640d6d7b1bae4b116deaaa70"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>release</b> ()</td></tr>
<tr class="separator:a34015014640d6d7b1bae4b116deaaa70 inherit pub_methods_classzxing_1_1_counted"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eaaffdfcfb10f2b48d2e2e7ffdd9d6d inherit pub_methods_classzxing_1_1_counted"><td class="memItemLeft" align="right" valign="top"><a id="a8eaaffdfcfb10f2b48d2e2e7ffdd9d6d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>count</b> () const</td></tr>
<tr class="separator:a8eaaffdfcfb10f2b48d2e2e7ffdd9d6d inherit pub_methods_classzxing_1_1_counted"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a465ff7a95aed2f3a54378511bb2dc63c"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzxing_1_1pdf417_1_1decoder_1_1_bit_matrix_parser.html#a465ff7a95aed2f3a54378511bb2dc63c">getCodeword</a> (int64_t symbol, int *pi=NULL)</td></tr>
<tr class="separator:a465ff7a95aed2f3a54378511bb2dc63c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a7b90870609e2015a0b78add8145ec4d5"><td class="memItemLeft" align="right" valign="top"><a id="a7b90870609e2015a0b78add8145ec4d5"></a>
static const int&#160;</td><td class="memItemRight" valign="bottom"><b>SYMBOL_TABLE</b> []</td></tr>
<tr class="separator:a7b90870609e2015a0b78add8145ec4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15ac800a9ad4f4152513c98b169a89d"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><b>SYMBOL_TABLE_LENGTH</b></td></tr>
<tr class="separator:af15ac800a9ad4f4152513c98b169a89d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55dfc982d82dd1e359eda64d3a60e0a5"><td class="memItemLeft" align="right" valign="top"><a id="a55dfc982d82dd1e359eda64d3a60e0a5"></a>
static const int&#160;</td><td class="memItemRight" valign="bottom"><b>CODEWORD_TABLE</b> []</td></tr>
<tr class="separator:a55dfc982d82dd1e359eda64d3a60e0a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ac080bd1b2c5f007bb1056b735376d4e7"><td class="memItemLeft" align="right" valign="top"><a id="ac080bd1b2c5f007bb1056b735376d4e7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsEqual</b> (int &amp;a, int &amp;b, int rownumber)</td></tr>
<tr class="separator:ac080bd1b2c5f007bb1056b735376d4e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a465ff7a95aed2f3a54378511bb2dc63c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a465ff7a95aed2f3a54378511bb2dc63c">&#9670;&nbsp;</a></span>getCodeword()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int BitMatrixParser::getCodeword </td>
          <td>(</td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>symbol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>pi</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Translate the symbol into a codeword.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">symbol</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the codeword corresponding to the symbol. 2012-06-27 hfn With the second argument, it is possible to verify in which of the three "blocks" of the codeword table the codeword has been found: 0, 1 or 2. </dd></dl>

</div>
</div>
<a id="a333c690ca4065e69b693202f2f0832c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a333c690ca4065e69b693202f2f0832c7">&#9670;&nbsp;</a></span>readCodewords()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzxing_1_1_array_ref.html">ArrayRef</a>&lt; int &gt; BitMatrixParser::readCodewords </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>To ensure separability of rows, codewords of consecutive rows belong to different subsets of all possible codewords. This routine scans the symbols in the barcode. When it finds a number of consecutive rows which are the same, it assumes that this is a row of codewords and processes them into a codeword array.</p>
<p>2012-09-12 HFN: Because now, at an earlier stage, the Detector has counted the rows, now it is no more necessary to check the equality of consecutive rows. We now have to check every row.</p>
<dl class="section return"><dt>Returns</dt><dd>an array of codewords. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classzxing_1_1_format_exception.html">FormatException</a></td><td>for example if number of rows is too big or something with row processing is bad </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af15ac800a9ad4f4152513c98b169a89d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af15ac800a9ad4f4152513c98b169a89d">&#9670;&nbsp;</a></span>SYMBOL_TABLE_LENGTH</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int BitMatrixParser::SYMBOL_TABLE_LENGTH</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">    <span class="keyword">sizeof</span>(BitMatrixParser::SYMBOL_TABLE) / <span class="keyword">sizeof</span>(<span class="keywordtype">int</span>)</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>R:/Develop/a0-develop/LibQQt/src/exquisite/qrcode/qrdecode/zxing/zxing/pdf417/decoder/<a class="el" href="pdf417_2decoder_2_bit_matrix_parser_8h_source.html">BitMatrixParser.h</a></li>
<li>R:/Develop/a0-develop/LibQQt/src/exquisite/qrcode/qrdecode/zxing/zxing/pdf417/decoder/PDF417BitMatrixParser.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
